import java.util.Scanner;

public class Why {
    public static void main1(String[] args) {
        double sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                sum -= 1.0 / i;
            } else {
                sum += 1.0 / i;
            }
        }
        System.out.println(sum);
    }

    public static void main2(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int a = sc.nextInt();
            for (int i = 0; i < a; i++) {
                for (int j = 0; j < a; j++) {
                    if (i == j || i + j == (a - 1)) {
                        System.out.println("*");
                    } else {
                        System.out.println(" ");
                    }
                }
            }
        }
    }

    //倒序输出
    public static void main3(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        while (num > 0) {
            int tmp = num % 10;
            System.out.println(tmp);
            num /= 10;
        }
        in.close();
    }

    //模拟登陆
    public static void main4(String[] args) {
        Scanner sc = new Scanner(System.in);
        int count = 3;
        while (count != 0) {
            System.out.println("请输入你的密码，你还有" + count + "次机会");
            String num = sc.nextLine();
            if (num.equals("123456")) {
                System.out.println("登陆成功");
                break;
            } else {
                count--;
                System.out.println("密码错误");
            }
        }
        sc.close();
    }

    //二进制序列
    public static void main5(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        //0000 0010
        for (int i = 31; i >= 1; i -= 2) {
            System.out.print(((n >>> i) & 1) + " ");
        }
        System.out.println();
        for (int i = 30; i >= 0; i -= 2) {
            System.out.print(((n >>> i) & 1) + " ");
        }
        scanner.close();
    }

    //方法的概念及使用
    //方法类似于C语言中的函数，我们重在体会与理解，不必去强硬地去背
    //1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
    //2. 做到代码被重复使用, 一份代码可以在多个位置使用.
    //3. 让代码更好理解更简单.
    //4. 直接调用现有方法开发, 不必重复造轮子.

    //方法的定义：
//    我们最早见过的是main方法，我们可以把它作为C语言中的函数去理解
//    例如：
//    定义个main方法：
//    public static void main(Sting[] args){
//
//    }
//    public static（这两个东西不能省略掉） void是指的是无类型的返回值， main是方法名，其后的括号中是形式参数列表
//    所以我们应定义一个：
//    public static 返回值 方法名(参数类型 形参){;
//        方法体代码
//        return(返回值)
//     }

//    在这里：我要先就关于大驼峰与小驼峰的命名方式先说一下
//    大驼峰：每个单词的首字母大写： 例如 DemoTest,MyClass
//    小驼峰：只有第一个单词的首字母大写，后续每个单词的首字母都大写，其余小写  例如：myFunction,userProfile

    //示例：判断2025年是不是闰年
    public static boolean isLeapYear1(int year) {
        if (0 == year % 4 && 0 != year % 100 || 0 == year % 400) {
            System.out.println(year + "是闰年");
            return true;//由于boolean类型，所以需要返回两个值
        } else {
            System.out.println(year + "不是闰年");
            return false;
        }
    }

    public static void main6(String[] args) {
        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt();
        isLeapYear1(year);
        sc.close();
    }

    public static void main7(String[] args) {

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        //int c = Add(a,b);
        //System.out.println(c);
    }

    public static int Add1(int x, int y) {
        return x + y;
    }
//    注意事项：
//    1. 修饰符：现阶段直接使用public static 固定搭配
//    2. 返回值类型：如果方法有返回值，返回值类型必须要与返回的实体类型一致，如果没有返回值，必须写成
//    void
//    3. 方法名字：采用小驼峰命名
//    4. 参数列表：如果方法没有参数，()中什么都不写，如果有参数，需指定参数类型，多个参数之间使用逗号隔开
//    5. 方法体：方法内部要执行的语句
//    6. 在java当中，方法必须写在类当中
//    7. 在java当中，方法不能嵌套定义
//    8. 在java当中，没有方法声明一说，声明必须要在主函数之前，但是我们可以不用管那么多

    public static boolean isLeapYear2(int year) {
        if (0 == year % 4 && 0 != year % 100 || 0 == year % 400) {
            //System.out.println(year + "是闰年");
            return true;//由于boolean类型，所以需要返回两个值
        } else {
            //System.out.println(year + "不是闰年");
            return false;
        }
    }

    public static void main8(String[] args) {
        Scanner sc = new Scanner (System.in);
        int year = sc.nextInt();
        //isLeapYear2(year);//上面的方法是返回的是true和false，但是没有接受这个值
        boolean flg = isLeapYear2(year);
        System.out.println(flg);
        sc.close();
    }


    //方法的调用：示例
    //一个方法可以多次调用
    public static void main9(String[] args) {
         boolean flg1 = isLeapYear3(2025);//2025是实际参数
        System.out.println(flg1);
         boolean flg2 = isLeapYear3(2024);//2025是实际参数
        System.out.println(flg2);
    }

    public static boolean isLeapYear3(int year) {//int year是形式参数
        if (0 == year % 4 && 0 != year % 100 || 0 == year % 400) {
            return true;//由于boolean类型，所以需要返回两个值
        } else {
            return false;
        }

    }
}
    //多次调用
//    public static void main10(String[] args) {
//        int a = 10;
//        int b = 20;
//        System.out.println("第一次调用方法之前");
//        int ret = add(a, b);
//        System.out.println("第一次调用方法之后");
//        System.out.println("ret = " + ret);
//
//        System.out.println("第二次调用方法之前");
//        ret = add(30, 50);
//        System.out.println("第二次调用方法之后");
//        System.out.println("ret = " + ret);
//    }
//
//    public static int add1(int x, int y) {
//        System.out.println("调用方法中 x = " + x + " y = " + y);
//        return x + y;
//    }

